9.2.2.1. Bağlantılı Listeyle Yığın Uygulama Örneği
Programda yığın işlevini yerine getiren tek bir fonksiyon tasarımı verilmiştir.
Bu fonksiyon, tamamen modüler özelliktedir ve hiçbir global değişkene
bağlı değildir; yalnızca yigindugum yapısı global olarak tanımlanmalıdır.
Fonksiyon içerisindeki tüm değişkenleri kendi içerisinde yereldir.
/* Global bildirimler
*/
#define N 500
int Yveri[N]={0}, yi=0;
int
yigin(int veri, char mod)
{
static yigindugum *yi=NULL;
yigindugum *g, v;
if(mod=='a')
{ /* al modu-yığının
başındakini gönderiyor */
if(yi==NULL) return EKES; /*
yığın boş */
g=yi;
v.veri=yi->veri;
yi=yi.arka;
free(g); /*
boşalan düğümün bellek alanı serbest bırakılıyor */
return v.veri;
}
else { /*
koy-ekle modu */
g=malloc(sizeof(yigindugum));
if(g==NULL)
return EKES; /* bellek alanı yetersiz */
g->veri=veri;
g->arka=yi;
yi=g;
}
}
|
|